﻿#!/usr/bin/env python3


def main():
    '''
metaclass -
metaclass实际是将class obj(类也是一种特殊obj, 此处不是一般的类实例意义的instance)的创建转给type的子类负责.
    class Meta(type):
        def __new__(meta, classname, supers, classdict):
            pass

    class C(metaclass=Meta):
        pass
而metaclass通常重实现type的__new__和__init__来改变class obj的创建过程.

python3中, metaclass是type的subclass. 而class是type class或其subclass的instance, 而一般obj是class的instance. 
Python在创建class obj阶段最后调用type()生成class obj, 
    class = type(name, bases, dict)
而type()会调用到__new__和__init__. 故metaclass可以冲实现这两个method.    

    '''
    print(main.__doc__)


if __name__=='__main__':
    main()
